<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.7"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OrbbecSDK: E:/Projects/Jenkins/workspace/OrbbecSDK/libobsensor/include/libobsensor/h/Context.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="orbbec_icon.png"/></td>
  <td id="projectalign">
   <div id="projectname">OrbbecSDK<span id="projectnumber">&#160;1.10.5</span>
   </div>
   <div id="projectbrief">OrbbecSDK: Software-Development-Kit for Orbbec 3D Cameras</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.7 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_8195f5c0d9a800b311ff87242d342361.html">libobsensor</a></li><li class="navelem"><a class="el" href="dir_9fda3634bd985c8b3aac4c1dd5078468.html">h</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">Context.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Context is a management class that describes the runtime of the SDK and is responsible for resource allocation and release of the SDK. Context has the ability to manage multiple devices. It is responsible for enumerating devices, monitoring device callbacks, and enabling multi-device synchronization.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ObTypes_8h_source.html">ObTypes.h</a>&quot;</code><br />
</div>
<p><a href="Context_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a10d632e4c78c959a38ab9d924340bb7c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a10d632e4c78c959a38ab9d924340bb7c">ob_enable_multi_device_sync</a>&#160;&#160;&#160;<a class="el" href="Context_8h.html#ae014e8e9574ae539e59e1318e656020a">ob_enable_device_clock_sync</a></td></tr>
<tr class="separator:a10d632e4c78c959a38ab9d924340bb7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa97c96f4d58c7e1e7d435a95c7bd796c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#aa97c96f4d58c7e1e7d435a95c7bd796c">ob_create_context</a> (<a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:aa97c96f4d58c7e1e7d435a95c7bd796c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a context object.  <br /></td></tr>
<tr class="separator:aa97c96f4d58c7e1e7d435a95c7bd796c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ee31c1bf23308ddba1ab1db04e7b63e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a3ee31c1bf23308ddba1ab1db04e7b63e">ob_create_context_with_config</a> (const char *config_path, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a3ee31c1bf23308ddba1ab1db04e7b63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a context object with a specified configuration file.  <br /></td></tr>
<tr class="separator:a3ee31c1bf23308ddba1ab1db04e7b63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad87bc8cd42069673a471392ec140a95d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#ad87bc8cd42069673a471392ec140a95d">ob_delete_context</a> (<a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *context, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:ad87bc8cd42069673a471392ec140a95d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a context object.  <br /></td></tr>
<tr class="separator:ad87bc8cd42069673a471392ec140a95d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a826dd28946acd5108a720784a1a03e7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ObTypes_8h.html#a808e5e274a0a28eef27f22e0e91508e0">ob_device_list</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a826dd28946acd5108a720784a1a03e7b">ob_query_device_list</a> (<a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *context, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a826dd28946acd5108a720784a1a03e7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a list of enumerated devices.  <br /></td></tr>
<tr class="separator:a826dd28946acd5108a720784a1a03e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae762ccb84e9cd16617cb97e335f33972"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#ae762ccb84e9cd16617cb97e335f33972">ob_enable_net_device_enumeration</a> (<a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *context, bool enable, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:ae762ccb84e9cd16617cb97e335f33972"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable network device enumeration.  <br /></td></tr>
<tr class="separator:ae762ccb84e9cd16617cb97e335f33972"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38d5903eb11b099cf035bcaaced831bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a38d5903eb11b099cf035bcaaced831bb">ob_create_net_device</a> (<a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *context, const char *address, uint16_t port, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a38d5903eb11b099cf035bcaaced831bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a network device object.  <br /></td></tr>
<tr class="separator:a38d5903eb11b099cf035bcaaced831bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acebdeed40dc2dc6abd78ec007fde9d4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#acebdeed40dc2dc6abd78ec007fde9d4d">ob_set_device_changed_callback</a> (<a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *context, <a class="el" href="ObTypes_8h.html#a0e6f8b80b87aec989df49ff0e5465e86">ob_device_changed_callback</a> callback, void *user_data, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:acebdeed40dc2dc6abd78ec007fde9d4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a device plug-in callback function.  <br /></td></tr>
<tr class="separator:acebdeed40dc2dc6abd78ec007fde9d4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae014e8e9574ae539e59e1318e656020a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#ae014e8e9574ae539e59e1318e656020a">ob_enable_device_clock_sync</a> (<a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *context, uint64_t repeatInterval, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:ae014e8e9574ae539e59e1318e656020a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activates device clock synchronization to synchronize the clock of the host and all created devices (if supported).  <br /></td></tr>
<tr class="separator:ae014e8e9574ae539e59e1318e656020a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fe4e159dfb8afaab3eabccd82e1bb9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a2fe4e159dfb8afaab3eabccd82e1bb9c">ob_free_idle_memory</a> (<a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *context, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a2fe4e159dfb8afaab3eabccd82e1bb9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free idle memory from the internal frame memory pool.  <br /></td></tr>
<tr class="separator:a2fe4e159dfb8afaab3eabccd82e1bb9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79a802866392f4bdfe720f96d207467a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a79a802866392f4bdfe720f96d207467a">ob_set_logger_severity</a> (<a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a> severity, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a79a802866392f4bdfe720f96d207467a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the global log level.  <br /></td></tr>
<tr class="separator:a79a802866392f4bdfe720f96d207467a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab79a13113a7e2bf0d793ffba5b93be03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#ab79a13113a7e2bf0d793ffba5b93be03">ob_set_logger_to_file</a> (<a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a> severity, const char *directory, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:ab79a13113a7e2bf0d793ffba5b93be03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the log output to a file.  <br /></td></tr>
<tr class="separator:ab79a13113a7e2bf0d793ffba5b93be03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a350986fb46826aa5a45e0042b21b6a1f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a350986fb46826aa5a45e0042b21b6a1f">ob_set_logger_callback</a> (<a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a> severity, <a class="el" href="ObTypes_8h.html#a722fa2a569dc5d7ead1beb8c024113a4">ob_log_callback</a> callback, void *user_data, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a350986fb46826aa5a45e0042b21b6a1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the log callback function.  <br /></td></tr>
<tr class="separator:a350986fb46826aa5a45e0042b21b6a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fa8b36789dc4795a62e12921d43465d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a3fa8b36789dc4795a62e12921d43465d">ob_set_logger_to_console</a> (<a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a> severity, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a3fa8b36789dc4795a62e12921d43465d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the log output to the console.  <br /></td></tr>
<tr class="separator:a3fa8b36789dc4795a62e12921d43465d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75ca999bcd3dea0808ed9ccff28bf00b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#a75ca999bcd3dea0808ed9ccff28bf00b">ob_load_license</a> (const char *filePath, const char *key, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:a75ca999bcd3dea0808ed9ccff28bf00b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a license file.  <br /></td></tr>
<tr class="separator:a75ca999bcd3dea0808ed9ccff28bf00b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf0f9777acf870a662b04ec73f57bab5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Context_8h.html#abf0f9777acf870a662b04ec73f57bab5">ob_load_license_from_data</a> (const char *data, uint32_t dataLen, const char *key, <a class="el" href="structob__error.html">ob_error</a> **error)</td></tr>
<tr class="memdesc:abf0f9777acf870a662b04ec73f57bab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a license from data.  <br /></td></tr>
<tr class="separator:abf0f9777acf870a662b04ec73f57bab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Context is a management class that describes the runtime of the SDK and is responsible for resource allocation and release of the SDK. Context has the ability to manage multiple devices. It is responsible for enumerating devices, monitoring device callbacks, and enabling multi-device synchronization. </p>

<p class="definition">Definition in file <a class="el" href="Context_8h_source.html">Context.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a10d632e4c78c959a38ab9d924340bb7c" name="a10d632e4c78c959a38ab9d924340bb7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10d632e4c78c959a38ab9d924340bb7c">&#9670;&#160;</a></span>ob_enable_multi_device_sync</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ob_enable_multi_device_sync&#160;&#160;&#160;<a class="el" href="Context_8h.html#ae014e8e9574ae539e59e1318e656020a">ob_enable_device_clock_sync</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="Context_8h_source.html#l00093">93</a> of file <a class="el" href="Context_8h_source.html">Context.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aa97c96f4d58c7e1e7d435a95c7bd796c" name="aa97c96f4d58c7e1e7d435a95c7bd796c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa97c96f4d58c7e1e7d435a95c7bd796c">&#9670;&#160;</a></span>ob_create_context()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> * ob_create_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a context object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during context creation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the created context object </dd></dl>

</div>
</div>
<a id="a3ee31c1bf23308ddba1ab1db04e7b63e" name="a3ee31c1bf23308ddba1ab1db04e7b63e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ee31c1bf23308ddba1ab1db04e7b63e">&#9670;&#160;</a></span>ob_create_context_with_config()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> * ob_create_context_with_config </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>config_path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a context object with a specified configuration file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">config_path</td><td>Path to the configuration file. If NULL, the default configuration file will be used. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during context creation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the created context object </dd></dl>

</div>
</div>
<a id="ad87bc8cd42069673a471392ec140a95d" name="ad87bc8cd42069673a471392ec140a95d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad87bc8cd42069673a471392ec140a95d">&#9670;&#160;</a></span>ob_delete_context()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_delete_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete a context object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>Pointer to the context object to be deleted </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during context deletion </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a826dd28946acd5108a720784a1a03e7b" name="a826dd28946acd5108a720784a1a03e7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a826dd28946acd5108a720784a1a03e7b">&#9670;&#160;</a></span>ob_query_device_list()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ObTypes_8h.html#a808e5e274a0a28eef27f22e0e91508e0">ob_device_list</a> * ob_query_device_list </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a list of enumerated devices. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>Pointer to the context object </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during device enumeration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the device list object </dd></dl>

</div>
</div>
<a id="ae762ccb84e9cd16617cb97e335f33972" name="ae762ccb84e9cd16617cb97e335f33972"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae762ccb84e9cd16617cb97e335f33972">&#9670;&#160;</a></span>ob_enable_net_device_enumeration()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_enable_net_device_enumeration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable or disable network device enumeration. </p>
<p>After enabling, the network device will be automatically discovered and can be retrieved through <a class="el" href="Context_8h.html#a826dd28946acd5108a720784a1a03e7b">ob_query_device_list</a>. The default state can be set in the configuration file.</p>
<dl class="section attention"><dt>Attention</dt><dd>Network device enumeration is performed through the GVCP protocol. If the device is not in the same subnet as the host, it will be discovered but cannot be connected.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>Pointer to the context object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">enable</td><td>true to enable, false to disable </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a38d5903eb11b099cf035bcaaced831bb" name="a38d5903eb11b099cf035bcaaced831bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38d5903eb11b099cf035bcaaced831bb">&#9670;&#160;</a></span>ob_create_net_device()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ObTypes_8h.html#a3c87c98acfd9b143bb58c731d95fa437">ob_device</a> * ob_create_net_device </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a network device object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>Pointer to the context object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>IP address of the device </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>Port number of the device </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during device creation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the created device object </dd></dl>

</div>
</div>
<a id="acebdeed40dc2dc6abd78ec007fde9d4d" name="acebdeed40dc2dc6abd78ec007fde9d4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acebdeed40dc2dc6abd78ec007fde9d4d">&#9670;&#160;</a></span>ob_set_device_changed_callback()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_set_device_changed_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a0e6f8b80b87aec989df49ff0e5465e86">ob_device_changed_callback</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a device plug-in callback function. </p>
<dl class="section attention"><dt>Attention</dt><dd>The added and removed device lists returned through the callback interface need to be released manually</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>Pointer to the context object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Pointer to the callback function triggered when a device is plugged or unplugged </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">user_data</td><td>Pointer to user data that can be passed to and retrieved from the callback function </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during callback function setting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae014e8e9574ae539e59e1318e656020a" name="ae014e8e9574ae539e59e1318e656020a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae014e8e9574ae539e59e1318e656020a">&#9670;&#160;</a></span>ob_enable_device_clock_sync()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_enable_device_clock_sync </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>repeatInterval</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Activates device clock synchronization to synchronize the clock of the host and all created devices (if supported). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>Pointer to the context object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">repeatInterval</td><td>The interval for auto-repeated synchronization, in milliseconds. If the value is 0, synchronization is performed only once. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during execution </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a2fe4e159dfb8afaab3eabccd82e1bb9c" name="a2fe4e159dfb8afaab3eabccd82e1bb9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fe4e159dfb8afaab3eabccd82e1bb9c">&#9670;&#160;</a></span>ob_free_idle_memory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_free_idle_memory </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ab96d384dfaeb83b9086aa8c9caf58d05">ob_context</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free idle memory from the internal frame memory pool. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>Pointer to the context object </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during memory freeing </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a79a802866392f4bdfe720f96d207467a" name="a79a802866392f4bdfe720f96d207467a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79a802866392f4bdfe720f96d207467a">&#9670;&#160;</a></span>ob_set_logger_severity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_set_logger_severity </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a>&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the global log level. </p>
<dl class="section attention"><dt>Attention</dt><dd>This interface setting will affect the output level of all logs (terminal, file, callback)</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">severity</td><td>Log level to set </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during log level setting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab79a13113a7e2bf0d793ffba5b93be03" name="ab79a13113a7e2bf0d793ffba5b93be03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab79a13113a7e2bf0d793ffba5b93be03">&#9670;&#160;</a></span>ob_set_logger_to_file()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_set_logger_to_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a>&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>directory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the log output to a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">severity</td><td>Log level to output to file </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">directory</td><td>Path to the log file output directory. If the path is empty, the existing settings will continue to be used (if the existing configuration is also empty, the log will not be output to the file) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during log output setting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a350986fb46826aa5a45e0042b21b6a1f" name="a350986fb46826aa5a45e0042b21b6a1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a350986fb46826aa5a45e0042b21b6a1f">&#9670;&#160;</a></span>ob_set_logger_callback()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_set_logger_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a>&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a722fa2a569dc5d7ead1beb8c024113a4">ob_log_callback</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the log callback function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">severity</td><td>Log level to set for the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Pointer to the callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">user_data</td><td>Pointer to user data that can be passed to and retrieved from the callback function </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during log callback function setting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3fa8b36789dc4795a62e12921d43465d" name="a3fa8b36789dc4795a62e12921d43465d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fa8b36789dc4795a62e12921d43465d">&#9670;&#160;</a></span>ob_set_logger_to_console()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_set_logger_to_console </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a634280495d30c01bd120bbbf38a9b614">ob_log_severity</a>&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the log output to the console. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">severity</td><td>Log level to output to the console </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during log output setting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a75ca999bcd3dea0808ed9ccff28bf00b" name="a75ca999bcd3dea0808ed9ccff28bf00b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75ca999bcd3dea0808ed9ccff28bf00b">&#9670;&#160;</a></span>ob_load_license()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_load_license </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filePath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a license file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">filePath</td><td>Path to the license file </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Decryption key. "OB_DEFAULT_DECRYPT_KEY" can be used to represent the default key. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during license loading </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="abf0f9777acf870a662b04ec73f57bab5" name="abf0f9777acf870a662b04ec73f57bab5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf0f9777acf870a662b04ec73f57bab5">&#9670;&#160;</a></span>ob_load_license_from_data()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob_load_license_from_data </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>dataLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structob__error.html">ob_error</a> **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a license from data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Pointer to the license data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dataLen</td><td>Length of the license data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Decryption key. "OB_DEFAULT_DECRYPT_KEY" can be used to represent the default key. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>Pointer to an error object that will be populated if an error occurs during license loading </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat May 11 2024 17:13:38 for OrbbecSDK by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
</small></address>
</body>
</html>
